Local 安裝 gcloud sdk 時 docker develop 環境
以下介紹 local 安裝 gcloud sdk,且在 local auth,並將 credential 分享給 docker 的方法,非目前日常開發的建議配置,有需要時再讀即可。
安裝 gcloud
- https://cloud.google.com/sdk/downloads
- Interactive installer
登入 gcloud
- gcloud auth login
- 如果需要deploy (目前是個issue,導致可能需要安裝不只gcloud,解決中)
- appcfg.py list_versions . --noauth_local_webserver 確定看的到 version
東西放好位置
- 找個吉祥的位置
- EX: ~/JUNYI/
- 抓 datastore
- https://drive.google.com/file/d/0ByfSrjFe1B59b0lGOVBzaHp2REU/view
- mkdir work_resource
- 將檔名改成 datastore.db 並移到 work_resource 底下
- 抓 code
- Build JS
- cd junyiacademy
- npm install
- cd javascript/perseus
- npm install
- cd ../..
- make build_js (or npm run build)
- ls 觀察一下,應該會發現
- work_resource/
- 裡面有 datastore.db
- junyiacademy/
- 裡面有 code
- junyiacademy/javascript/header-package
- 裡面一定要有一個 bundle 的資料夾
- bundle 資料夾裡面有一個 header.js
- work_resource/
跑各式各樣的東西
devserver
- 第一步
- docker ps -a 檢查有沒有 jy_appserver (避免 name conflict)
- 有的話 docker stop/rm jy_appserver
- 第二步
gcloud docker -- run -d -v $(pwd)/junyiacademy:/src \
-v $(pwd)/work_resource:/work_resource \
-v ~/.config/gcloud:/.config/gcloud \
-p 8080:8080 -p 8000:8000 \
--name jy_appserver gcr.io/junyiacademy/dev/localserver \
/google-cloud-sdk/bin/dev_appserver.py /src/ \
--datastore_path=/work_resource/datastore.db \
--host=:: --admin_host=::
- 停止 jy_appserver
- docker stop jy_appserver
- 開啟 jy_appserver
- docker start jy_appserver
- Logs
- docker logs appserver (-f)
unit test
- 第一步
- docker ps -a 檢查有沒有 jy_unit_test (避免 name conflict)
- 有的話 docker stop/rm jy_unit_test
- 第二步
gcloud docker -- run -v $(pwd)/junyiacademy:/src \
-v ~/.config/gcloud:/.config/gcloud \
--name jy_unit_test gcr.io/junyiacademy/dev/localserver \
make test
- 如果要執行不同的 test 那就直接改上面最後一行 make test
api test
- 第一步
- docker ps -a 檢查有沒有 jy_test_api (避免 name conflict)
- 有的話 docker stop/rm jy_test_api
- 第二步
gcloud docker -- run -v $(pwd)/junyiacademy:/src -v ~/.config/gcloud:/.config/gcloud \
--name jy_test_api gcr.io/junyiacademy/dev/localserver \
make test_api
- 如果要執行不同的 test 那就直接改上面最後一行 make test_api
deploy
- 請參考 Deployment